package com.wr.common.core.utils.format;


import com.wr.common.core.utils.StringUtils;

import java.util.regex.Pattern;

/**
 * @author MyPC
 */
public class FormatUtils {

    private final static String MOBILE_REGEX = "^1[3456789]\\d{9}$";

    private final static String MAILBOX_REGEX = "[a-zA-Z0-9]+[\\.]{0,1}[a-zA-Z0-9]+@[a-zA-Z0-9]+\\.[a-zA-Z]+";

    /**
     * 地址只允许字母、数字或者下划线(_) 、中划线(-)，至少2个字符，必须以字母开头，不能以特殊字符结尾
     */
    private final static String GITEE_SPACE_URL_REGEX = "^[a-zA-Z][0-9a-zA-Z_-]{2,35}$";

    /**
     * 空间URl只能包含字母数字字符或单个连字符，并且不能以连字符开头或结尾
     */
    private final static String GITHUB_SPACE_URL_REGEX = "^(?!-)((?!--)[0-9a-zA-Z-]){1,39}(?<!-)$";

    /**
     * 校验手机号格式
     * @param mobile
     * @return
     */
    public static boolean isMobile(String mobile) {
        if (StringUtils.isEmpty(mobile)) {
            return false;
        }
        Pattern pattern = Pattern.compile(MOBILE_REGEX);
        return pattern.matcher(mobile).matches();
    }

    /**
     * 校验邮箱格式
     * @param mailbox
     * @return
     */
    public static boolean isMailbox(String mailbox) {
        if (StringUtils.isEmpty(mailbox)) {
            return false;
        }
        Pattern pattern = Pattern.compile(MAILBOX_REGEX);
        return pattern.matcher(mailbox).matches();
    }

    /**
     * 校验gitee空间url格式
     * @param spaceUrl
     * @return
     */
    public static boolean isGiteeUrl(String spaceUrl) {
        if (StringUtils.isEmpty(spaceUrl)) {
            return false;
        }
        Pattern pattern = Pattern.compile(GITEE_SPACE_URL_REGEX);
        return pattern.matcher(spaceUrl).matches();
    }

    /**
     * 校验github空间url格式
     * @param spaceUrl
     * @return
     */
    public static boolean isGithubUrl(String spaceUrl) {
        if (StringUtils.isEmpty(spaceUrl)) {
            return false;
        }
        Pattern pattern = Pattern.compile(GITHUB_SPACE_URL_REGEX);
        return pattern.matcher(spaceUrl).matches();
    }
}
